

// 给你二叉树的根节点 root ，返回其节点值的 层序遍历 。 （即逐层地，从左到右访问所有节点）。

 

// 示例 1：


// 输入：root = [3,9,20,null,null,15,7]
// 输出：[[3],[9,20],[15,7]]


// 解题步骤：

// 广度优先遍历二叉树
// 遍历过程中，记录每个节点的层级，并将其添加到不同的数组中

function levelOrder(root: TreeNode | null): number[][] {
   if(!root) return []
   let res = []
   let savelist:[TreeNode,number][] = [[root,0]]
   while(savelist.length){
    const [n,l] = savelist.shift()
    if(!res[l]){
        res[l] = [n.val]
    }else{
        res[l].push(n.val)
    }
    n.left && savelist.push([n.left,l+1])
    n.right && savelist.push([n.right,l+1])
   }
   return res
};